package test3;
/*
引用类实例方法
截取字符串
定义一个接口(MyString):里面定义一个抽象方法
   String mySubString(String s,int x,int y);
定义一个测试类(MyStringDemo):在测试类中提供两个方法
   一个方法是:useMyString(MyString my)
   一个方法是主方法，在主方法中调用useMyString方法
 */
public class MyStringDemo {
    public static void main(String[] args) {
//        useMyString((String s,int x,int y)->{
//            return s.substring(x,y);
//        });
        useMyString((s, x, y) -> s.substring(x,y));

        //使用类中的实例方法
        useMyString(String::substring);

        //Lambda表达式被类的实例方法替代时
        //第一个参数作为调用者
        //后面的参数全部传递给该方法作为参数
    }

    public static void useMyString(MyString my){
        String s = my.mySubString("hello world", 0, 3);
        System.out.println(s);
    }
}
